﻿#ifndef __INCosa_commonh
#define __INCosa_commonh
#include "ese_config.h"


/* 在Windows和Linux下定义VxWorks.h中的相关内容 */
#if defined(ESE_OS_LINUX) || defined(ESE_OS_WIN)
    
/* 函数指针 */
#ifdef __cplusplus
typedef int     (*FUNCPTR) (...);     /* ptr to function returning int */
#else
typedef int     (*FUNCPTR) ();        /* ptr to function returning int */
#endif /* __cplusplus */

/* return status values */
#define OK       0
#ifdef ESE_OS_WIN
#include <wtypes.h>
#include <wingdi.h>
#ifdef ERROR
#undef ERROR
#endif
#endif
#define ERROR    (-1)

/* timeout defines */
#define NO_WAIT        0
#define WAIT_FOREVER   (-1)

/* VxWorks types */
typedef unsigned long   ULONG;
typedef	unsigned int    UINT;
typedef	int             STATUS;

/* min & max */
#ifdef ESE_OS_WIN
#include <windef.h>
#ifdef max
#undef max
#endif
#ifdef min
#undef min
#endif
#endif
#define max(x, y)	(((x) < (y)) ? (y) : (x))
#define min(x, y)	(((x) < (y)) ? (x) : (y))

#else
#include "vxWorks.h"	/*vx环境下包含着个头文件*/
    
#endif /*defined(ESE_OS_LINUX) || defined(ESE_OS_WIN)*/

#undef ESE_BEGIN_NAMESPACE
#undef ESE_END_NAMESPACE
#undef ESE_USING
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 9)
#	define ESE_BEGIN_NAMESPACE(x)
#	define ESE_END_NAMESPACE
#	define ESE_USING(x)
#else
#	define ESE_BEGIN_NAMESPACE(ns) namespace ns{
#	define ESE_END_NAMESPACE }
#	define ESE_USING(ns) using ns
#endif

#endif
